	// 변수 선언
	var canvas;												// 캔버스 객체  		
  	var canvas2d;											// 캔버스 2d 객체	
	var canvasWidth=960;							// 캔버스 전체 너비 설정	
	var canvasHeight=530;							// 캔버스 전체 높이 설정
  	var cardWidth;										// 카드 너비
  	var cardHeight;										// 카드 높이
  	var cardArr=[];											// 카드 저장 배열  	
	var cx=canvasWidth*0.07;					// 초기 카드 첫번째줄 x좌표
	var cx2=canvasWidth*0.07;					// 초기 카드 두번째줄 x좌표
	var cy1=canvasHeight*0.28;				// 초기 카드 첫번째줄 y좌표	
	var cy2=canvasHeight*0.52;				// 초기 카드 두번째줄 y좌표
	var sx;														// 카드 x좌표
	var sy;														// 카드 y좌표
	var drawback;											// 카드 뒷면 그리기
	var drawface;											// 카드 앞면 그리기
	var cardno;												// 카드 번호
	var no=1;													// 카드를 순서대로 뒤집은지 확인하기 위한 키 값 설정 
	var t;															// 타이머 함수 호출
	var adAni;													// 광고문구 애니메이션 변수		
	var cardAni;												// 카드 애니메이션 변수
	var face=0;												// 카드 앞면 애니메이션을 위한 변수 초기화
	var i=0;														// 시간을 계산 하기 위한 변수 초기화
	var timerfirst=true;									// 타이머를 한번만 호출하기 위한 flag 변수 선언	
	var adword=["Music","Deserves","Respect","So","I gotta","respect","SONY","MDR-1R"];			// 	
	var adwx=[80,200,380,80,140,280,480,600];		//
	var adwy1=69;											//
	var adwy2=106;										//
	var alpha=["0.0","0.05","0.1","0.15","0.2","0.25","0.3","0.35","0.4","0.45","0.5","0.55","0.6","0.65","0.7","0.75","0.8","0.85","0.9","0.95","1.0"];		// 
	var alphaIndex=0;									// 
		
	// 초기화 함수 => 페이지 로딩시 초기화
 	function init() {
  		canvas = document.getElementById('canvas');
  		canvas2d = document.getElementById('canvas').getContext('2d');
  		canvas.addEventListener('click', choose, false);
  		animation();
 	}
	
	// 카드 객체 생성
 	function Card(cardWidth, cardHeight, timg, no) {
  		this.sx;
  		this.sy;
  		this.cardWidth = cardWidth;
  		this.cardHeight = cardHeight;
  		this.timg = timg;
  		this.drawback = drawback;
  		this.drawface = drawface;
  		var imga = new Image();
  		var imgb = new Image();
  		imga.src = timg;
  		imgb.src = "touch_game_img/event.jpg";
  		this.img = imga;
  		this.imgback = imgb;
  		this.cardno = no;
 	}
 	
 	// 광고 애니메이션
	function animation() {
		adAni = setInterval("drawad()", 100);		
	}
 
	// 광고 문구 그리기
	function drawad() {		
		canvas2d.fillStyle = "rgb(230,230,230)";
	 	canvas2d.fillRect(0, canvasHeight*0.06, canvasWidth*1 , canvasHeight*0.16);
		canvas2d.font="bold 35px Tahoma";
		canvas2d.fillStyle="rgb(0,144,183)";		
		canvas2d.globalAlpha=alpha[alphaIndex];		
		for(var i=0; i<8; i++) {
			if(i<3) {
				canvas2d.fillText(adword[i], adwx[i], adwy1);
			} else {
				canvas2d.fillText(adword[i], adwx[i], adwy2);
			}
		}
		if(timerfirst) {
			if(++alphaIndex >= alpha.length) {					
				clearInterval(adAni);
				anphaIndex=
		  		makedeck();
			}	
		}		
	}

	function drawad2() {		
		canvas2d.font="bold 35px Tahoma";
		canvas2d.fillStyle="rgb(255,100,0)"		
		if(no<4) {
			canvas2d.fillText(adword[no-1], adwx[no-1], adwy1);
		} else {
			canvas2d.fillText(adword[no-1], adwx[no-1], adwy2);
		}		
	}
	
	// 카드 뒷면 그리기
 	function drawback() {
  		canvas2d.fillStyle = "rgb(255,255,255)";
  		canvas2d.fillRect(this.sx, this.sy, this.cardWidth, this.cardHeight);
  		canvas2d.drawImage(this.imgback, this.sx, this.sy, this.cardWidth, this.cardHeight);
 	}
 	
	// 카드 앞면 그리기
 	function drawface() {
 		canvas2d.fillStyle = "rgb(255,255,255)";
 		canvas2d.fillRect(this.sx, this.sy, this.cardWidth, this.cardHeight);
 		canvas2d.drawImage(this.img, this.sx, this.sy, this.cardWidth, this.cardHeight);
 	}
	
 	//카드 만들기(앞면 1.5초간 보여준 후 뒷면으로 뒤집는 함수 호출)
 	function makedeck() {
  		cardWidth = canvasWidth*0.2;
  		cardHeight = canvasHeight*0.2;
  		var bimg = ""
  		for(var i=1; i<9; i++){
  			var img = "touch_game_img/ad"+i+".png";
   			var card = new Card(cardWidth, cardHeight, img, i);
		   	cardArr.push(card);
		}
  		suffle();  		
  		cardAni = setInterval("carddrawface()", 250);  		  		
 	}
 	
 	// 카드 앞면 그리기
 	function carddrawface() {  		
   		cardArr[face].drawface();
  		face++;
  		if(face>7) {
  			clearInterval(cardAni);
  			setTimeout(carddrawback, 1000);
  		}
 	}
 	
 	// 카드 뒤집기
 	function carddrawback() {
  		for(var i=0; i<cardArr.length; i++){
   			cardArr[i].drawback();
  		}
  		if(timerfirst) {
  			StartTimer();  			
  			timerfirst=false;
  		}
 	}

 	// 카드 섞기
 	function suffle() {
  		var cardLength = cardArr.length;									// 카드 배열 길이 
  		var select;																		// 카드 배열 선택 인덱스
  		var cardRandomArr = [];													// 랜덤 카드 저장 배열
  		for(var i=0; i<cardLength; i++){
   			select = Math.floor(Math.random()*cardArr.length);
   			cardRandomArr.push(cardArr[select]);						// card배열에 무작위로 추출된 카드 삽입   			
   			cardArr.splice(select,1);												// card배열에서 무작위로 추출된 카드 제거
   			if(i<4) {
	   			cardRandomArr[i].sx=cx;										// 카드 6개의 첫번째 x좌표를 50으로 설정
	   			cardRandomArr[i].sy=cy1;										// 카드 6개의 y좌표를 150으로 설정
	    		cx += (cardWidth+canvasWidth*0.02);					// 카드 5개의 x좌표를 카드너비+30씩 증가하게 설정   				
   			} else {
	   			cardRandomArr[i].sx=cx2;										// 카드 6개의 첫번째 x좌표를 50으로 설정
	   			cardRandomArr[i].sy=cy2;										// 카드 6개의 y좌표를 280으로 설정
	    		cx2 += (cardWidth+canvasWidth*0.02);				// 카드 5개의 x좌표를 카드너비+30씩 증가하게 설정   				
   			}
  		}
  		cardArr=cardRandomArr;												// 무작위로 섞인 카드를 원래 카드 배열로 지정
  		cardRandomArr=[];															// 무작위 카드 배열 초기화
 	}

 	// 마우스 클릭시 함수
 	function choose(ev) {
  		if(ev.offsetX!=null) {
   			var cx=ev.offsetX;
   			var cy=ev.offsetY;
  		} else if(ev.layerX!=null) {
   			var cx=ev.layerX;
   			var cy=ev.layerY;
  		}  		
  		findcard(cx,cy);
 	}
 	
 	// 카드 찾기 및 버그 방지
 	function findcard(cx,cy){
  		var card;  		
  		for(var i=0; i<cardArr.length; i++){
   			card = cardArr[i];
   			if((cx>=card.sx && cx<=(card.sx+card.cardWidth)) && (cy>=card.sy && cy<=(card.sy+card.cardHeight))) {				
				card.drawface();	
				if(card.cardno != no) {
					no = 1;
					drawad();
					setTimeout(carddrawback, 100);					
				} else {
					drawad2();
					no += 1;
				}
     		}    		
  		}
  		if(no==9) {
			StopTimer();
  		}
 	}
 	
 	function StartTimer()	{
		 t = setInterval("TimeCheck()",10);
 	}

 	function TimeCheck() {
		var min = Math.floor(i/6000); 													// 분 구하기
		if(min<10) {
			min = "0"+min;
		}
		var sec = Math.floor(i/100);						 				   			// 초 구하기
		if(sec>59) {
			sec = sec%60;
		}
		if(sec<10) {
			sec = "0"+sec;
		}
		var msec = i%100; 																	// milli초 구하기		
		canvas2d.fillStyle = "rgb(0,0,0)";
		canvas2d.fillRect(canvasWidth*0.37, canvasHeight*0.8, canvasWidth*0.26, canvasHeight*0.14); 		
		canvas2d.font="bold 35px Tahoma";
  		canvas2d.fillStyle="rgb(255,255,255)";
		canvas2d.fillText(min+" : "+sec+" : "+msec, canvasWidth*0.4, canvasHeight*0.89);  // 텍스트폼에 출력.
	 	 i++; 		// 1증가
 	}

 	function StopTimer()	{
		i = 0; // 0으로 초기화
		clearInterval(t); // setInterval()함수 정지시키기..
		gameOver("End");
 	}
 	
 	function gameOver(msg){
		window.HybridApp.gameOver(msg);
	} 	
